package com.aos.dao;

import com.aos.dto.UserDto;
import com.aos.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName UserDao
 * @Description:用户
 * @Author wumingwang
 * @Date 2018/9/5 17:04
 * @Version 1.0
 */
public interface UserDao {
    /**
     * 分页查询用户
     * @param map
     * @return
     */
    List<UserDto> queryByPage(Map<String,Object> map);

    /**
     * 添加数据
     * @param user
     * @return
     */
    Integer insert(User user);

    /**
     * 更新数据
     * @param user
     * @return
     */
    Integer update(User user);

    /***
     * 删除数据
     * @return
     */
    Integer delete(Long id);

    /**
     * 检验账号重复
     * @param user
     * @return
     */
    User queryForCheckByName(User user);

    /**
     * 根据ID查询用户
     * @param id
     * @return
     */
    User queryById(Long id);

    /**
     * 根据ID查询用户详情
     * @param id
     * @return
     */
    UserDto queryDetailsById(Long id);

    /**
     * 校验用户
     * @param userName
     * @return
     */
    UserDto checkForLogin(@Param("userName") String userName);

    /**
     * 根据应用ID查询应用下的父账户
     * @param appId
     * @return
     */
    User queryParentByAppId(Long appId);

    /**
     * 更新用户状态
     * @param user
     * @return
     */
    Integer updateState(User user);
}
